home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / dsp_184.zip / FSP.TXT < prev    next >
Text File  |  1991-11-15  |  103KB  |  2,584 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.                              FLU_SHOT+, Version 1.84
  30.  
  31.                            A Form of Protection from
  32.                             Viral and Trojan Programs
  33.  
  34.  
  35.                                        by
  36.                                 Ross M. Greenberg
  37.                                        and
  38.                             Software Concepts Design
  39.                                Post Office Box 908
  40.                             Margaretville, New York 12455
  41.                        BBS:(607)-326-4425 1200|2400|N/8/1
  42.                             Voice: (607)-326-4422
  43.                              Fax:  (607)-326-4424
  44.  
  45.  
  46.                      _______
  47.                 ____|__     |               (TM)
  48.              --|       |    |-------------------
  49.                |   ____|__  |  Association of
  50.                |  |       |_|  Shareware
  51.                |__|   o   |    Professionals
  52.              -----|   |   |---------------------
  53.                   |___|___|    MEMBER
  54.              
  55.              
  56.  
  57.  
  58.  
  59.  
  60.               FLU_SHOT+ is a trademark of Software Concepts Design.
  61.               Copyright (C), 1988-1990 by Software Concepts Design.
  62.                               All Rights Reserved.
  63.  
  64.  
  65.         Not for Commercial Distribution without written permission by the 
  66.         copyright holder. Noncommercial copying of this software and this 
  67.         documentation is encouraged.  Commercial Distribution is easily 
  68.         defined: if you distribute this software, or the enclosed 
  69.         documentation, for more than your cost of such distribution, then 
  70.         you're a Commercial Distributor and require our written 
  71.         permission.  Not-for-profit organizations and computer user 
  72.         groups, and their bulletin board systems (if any) are 
  73.         specifically *not* considered commercial distributors.
  74.  
  75.         By your using this software, you agree to the terms herein.  
  76.         Specifically, that you do not have the right to copy this 
  77.         software except as outlined above, and that you are granted a 
  78.         license to use this software only by registering this software as 
  79.         mentioned elsewhere in this document.
  80.  
  81.         You also agree, and signify that agreement by using this 
  82.         software, that Software Concepts Design and Ross M. Greenberg 
  83.         will not be held liable for any reason for any cost you may 
  84.         incur, or any potential income you might lose as a result of 
  85.         using this software.  Finally, this software is provided "AS IS", 
  86.         meaning that what you see is what you get.  If you use this 
  87.         software and a tree falls on your house, or your spouse leaves 
  88.         you for someone younger and more virile, please do not bother 
  89.         having your lawyer call -- it isn't the fault of the software, no 
  90.         matter what the lawyer tries to convince you!  Maybe lawyers 
  91.         should all work on a shareware basis: they only get paid if 
  92.         you're satisfied with their work?  One can dream....
  93.  
  94.         Software Concepts Design can be reached by the following means
  95.         *by*registered*users* of FLU_SHOT+:
  96.  
  97.              Telephone:  Monday-Friday, 9am - 5pm (EST):  607-326-4422
  98.              RamNet BBS: 607-326-4425
  99.              MCI:        'greenber'
  100.              BIX:        'greenber'
  101.              CompuServe:  [72461, 3212]
  102.  
  103.  
  104.  
  105.  
  106.         Table of Contents
  107.  
  108.         I.   Introduction
  109.              a.   What is a Trojan.....................................1
  110.              b.   What is a Virus......................................4
  111.              c.   The Challenge to the Worm............................6
  112.  
  113.         II.  About the FLUSHOT Series
  114.              a.   A Brief History......................................8
  115.              b.   FLU_SHOT+ Features and Enhancements..................9
  116.              c.   Registering FLU_SHOT+................................10
  117.              d.   Site Licensing of FLU_SHOT+..........................10
  118.  
  119.         III. Using FLU_SHOT+
  120.  
  121.              a.   Down and Dirty Installation: Step-By-Step............12
  122.              b.   The FLUSHOT.DAT file.................................14
  123.                   1.   Protecting files from Write Access..............15
  124.                   2.   Protecting files from Read Access...............15
  125.                   3.   Excluding files.................................15
  126.                   4.   Checksumming files..............................16
  127.                   5.   Registering a TSR program.......................17
  128.                   6.   Restricted Access...............................17
  129.                   7.   Protecting the FLUSHOT.DAT file.................18
  130.                   8.   Protection Recommendations......................18
  131.                   9.   Allowing "dangerous" programs to run............19
  132.                  10.   Protecting your Boot Track......................19
  133.  
  134.              c.   Running FLU_SHOT+....................................20
  135.                   1.   Checksumming the in-memory table................20
  136.                   2.   Intercepting Direct Disk Writes Through INT13...21
  137.                   3.   What about INT26................................21
  138.                   4.   Turning off the header message..................21
  139.                   5.   Disabling Triggering on Open With Write Access..21
  140.                   6.   Changing the Trigger Window Attributes..........21
  141.                   7.   Allowing trusted TSR's to work..................23
  142.                   8.   Disabling FLU_SHOT+.............................23
  143.                   9.   Disabling FLU_SHOT+ Toggle Display..............24
  144.                  10.   Forcing FLU_SHOT+ to only use the BIOS..........24
  145.                  10.   Defining the "Special" Keys.....................25
  146.                  11.   Putting FLU_SHOT+ to sleep when run.............25
  147.  
  148.         IV.  Interpreting a FLU_SHOT+ Trigger..........................26
  149.  
  150.         V.   How Good is FLUSHOT+, Really?.............................30
  151.  
  152.         VI.  Reward Offered............................................31
  153.  
  154.         VII. Appendices
  155.              Appendix A:  Common Questions and Their Answers...........33
  156.              Appendix B:  How Does A Virus Work?.......................38
  157.  
  158.  
  159.  
  160.                                   Introduction
  161.  
  162.         What is a Trojan?
  163.         =================
  164.  
  165.         Back in the good old days (before there were computers), there 
  166.         was this bunch of soldiers who had no chance of beating a 
  167.         superior force or of even making it into their fortress.  They 
  168.         had this nifty idea:  present the other side with a gift.  Once 
  169.         the gift had been accepted, soldiers hiding within the gift would 
  170.         sneak out and overtake the enemy from within.
  171.  
  172.         We can only think of the intellectual giants of the day who would 
  173.         accept a gift large enough to house enemy soldiers without 
  174.         checking its contents.  Obviously, they had little opportunity to 
  175.         watch old WWII movies to see the same device used over and over 
  176.         again.  They probably wouldn't have appreciated Hogan's Heroes 
  177.         anyway.  No color TV's -- or at least not ones with reliable 
  178.         reception.
  179.  
  180.         Consider the types of people who would be thrilled at the concept 
  181.         of owning their own rough hewn, large wooden horse!  Perhaps they 
  182.         wanted to be the first one on their block, or something silly 
  183.         like that.
  184.  
  185.         Anyway, you're all aware of the story of The Trojan Horse.
  186.  
  187.         Bringing ourselves a bit closer to the reality we've all grown to 
  188.         know and love, there's a modern day equivalent:  getting a gift 
  189.         from your BBS or user group which contains a little gem which 
  190.         will attack your hard disk, destroying whatever data it contains.
  191.  
  192.         In order to understand how a potentially useful program can cause 
  193.         such damage when corrupted by some misguided soul, it's useful to 
  194.         understand how your disk works, and how absurdly easy it is to 
  195.         cause damage to the data contained thereon.  So, a brief 
  196.         technical discussion of the operation of your disk is in order.  
  197.         For those who aren't concerned, turn the page or something.
  198.  
  199.         Data is preserved on a disk in a variety of different physical 
  200.         ways having to do with how the data is encoding in the actual 
  201.         recording of that data. The actual *structure* of that data, 
  202.         however, is the same between MS-DOS machines.  Other operating 
  203.         systems have a different structure, but that doesn't concern us 
  204.         now.
  205.  
  206.         Each disk has a number of "tracks". These are sometimes called 
  207.         cylinders from the old type IBMer's.  These are the same people 
  208.         who call hard disks DASDs (Direct Access Storage Devices), so we 
  209.         can safely ignore their techno-speak, and just call them tracks.  
  210.         Tracks can be thought of as the individual little grooves on an 
  211.         audio record, sort of.
  212.  
  213.         Anyway, each track is subdivided into a number of sectors.  Each 
  214.         track has the same number of sectors.  Tracks are numbered, as 
  215.  
  216.                                         1
  217.  
  218.  
  219.  
  220.         are sectors.  Any given area on the disk can be accessed if a 
  221.         request is made to read or write data into or out of Track-X, 
  222.         Sector Y.  The read or write command is given to the disk 
  223.         controller, which is an interface between the computer itself and 
  224.         the hard disk.  The controller figures out what commands to send 
  225.         to the hard disk,  the hard disk responds and the data is read or 
  226.         written as directed.
  227.  
  228.         The first track on the hard disk typically will contain a small 
  229.         program which is read from the hard disk and executed when you 
  230.         first power up your machine.  The power up sequence is called 
  231.         "booting" your machine, and therefore the first track is typical 
  232.         known as the "boot track".
  233.  
  234.         In order to read information from your disk in a logical 
  235.         sequence, there has to be some sort of index.  An unusual index 
  236.         method was selected for MS-DOS.  Imagine going to the card index 
  237.         in a library, looking up the title you desire, and getting a 
  238.         place in another index which tells you where on the racks where 
  239.         the book is stored.  Now, when you read the book, you discover 
  240.         that only the first chapter of the book is there.  In order to 
  241.         find the next chapter of the book, you have to go back to that 
  242.         middle index, which tells you where the next chapter is stored.  
  243.         This process continues until you get to the end of the book.  
  244.         Sounds pretty convoluted, right?  You bet!  However, this is 
  245.         pretty much how MS-DOS does its "cataloguing" of files.
  246.  
  247.         The directory structure of MS-DOS allows for you to look up an 
  248.         item called the "first cluster".  A cluster represents a set of 
  249.         contiguous ("touching or in contact" according to Random House) 
  250.         tracks and sectors.  It is the smallest amount of information 
  251.         which the file structure of MS-DOS knows how to read or write.
  252.  
  253.         Based on the first cluster number as stored in the directory, the 
  254.         first portion of a file can be read.  When the information 
  255.         contained therein is exhausted, MS-DOS goes to that secondary 
  256.         index for a pointer to the next cluster.  That index is called 
  257.         the File Allocation Table, commonly abbreviated to "FAT".  The 
  258.         FAT contains an entry for each cluster on the disk.  An FAT entry 
  259.         can have a few values: ones which indicate that the cluster is 
  260.         unused, another which indicates that the associated cluster has 
  261.         been damaged somehow and that it should be marked as a "bad 
  262.         cluster", and a pointer to the next cluster for a given file.  
  263.         This allows for what is called a linked list:  once you start 
  264.         looking up clusters associated with a given file, each FAT entry 
  265.         tells you what the next cluster is.  At the end of the linked 
  266.         list is a special indicator which indicates that there are no 
  267.         more clusters associated with the file.
  268.  
  269.         There are actually two copies of the FAT stored on your disk, but 
  270.         no one really knows what the second copy was intended for.  
  271.         Often, if the first copy of the FAT is corrupted for some reason, 
  272.         a clever programmer could recover information from the second 
  273.         copy to restore to the primary FAT.  These clever programmers can 
  274.         be called "hackers", and should not be confused with the thieves 
  275.  
  276.                                         2
  277.  
  278.  
  279.  
  280.         who break into computer systems and steal things, or the "worms" 
  281.         [Joanne Dow gets credit for *that* phrase!] who would get joy out 
  282.         of causing you heartache!
  283.  
  284.         But that heartache is exactly what can happen if the directory 
  285.         (which contains the pointer to the first cluster a file uses), 
  286.         the FAT (which contains that linked list to other areas on the 
  287.         disk which the file uses), or other areas of the disk get 
  288.         corrupted.
  289.  
  290.         And that's what the little worms who create Trojan programs do:  
  291.         they cause what at first appears to be a useful program to 
  292.         eventually corrupt the important parts of your disk.  This can be 
  293.         as simple as changing a few bytes of data, or can include wiping 
  294.         entire tracks clean.
  295.  
  296.         Not all programs which write to your hard disk are bad ones, 
  297.         obviously.  Your word processor, spreadsheet, database and 
  298.         utility programs have to write to the hard disk.  Some of the DOS 
  299.         programs (such as FORMAT), if used improperly, can also erase 
  300.         portions of your hard disk causing you massive amounts of grief.  
  301.         You'd be surprised what damage the simple "DEL" command can do 
  302.         with just a simple typo.
  303.  
  304.         But, what defines a Trojan program is its delivery mechanism: the 
  305.         fact that you're running something you didn't expect.  Typical 
  306.         Trojan programs cause damage to your data, and were designed to 
  307.         do so by the worms who writhe in delight at causing this damage.  
  308.         May they rot in hell -- a mind is a terrible thing to waste!
  309.  
  310.         Considering the personality required to cause such damage, you 
  311.         can rest assured that they have few friends, and even their 
  312.         mother doesn't like to be in the same room with them.  They sit 
  313.         back and chortle about the damage they do with a few other lowly 
  314.         worms.  This is their entire social universe. You should pity 
  315.         them.  I know that I do.
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.                                         3
  338.  
  339.  
  340.  
  341.                                   Introduction
  342.  
  343.         What is a Virus?
  344.         ================
  345.  
  346.         Trojan programs are but a delivery mechanism, as stated above.  
  347.         They can be implemented in a clever manner, so that they only 
  348.         trigger the malicious part on a certain date, when your disk 
  349.         contains certain information or whatever.  However they're coded, 
  350.         though, they typically affect the disk only in a destructive 
  351.         manner once triggered.
  352.  
  353.         A new breed of programs has the capability of not only reserving 
  354.         malicious damage for a given event's occurrence, but of also 
  355.         replicating itself as well.
  356.  
  357.         This is what people refer to when they mention the term "Virus 
  358.         Program".
  359.  
  360.         Typically, a virus will spread itself by replicating a portion of 
  361.         itself onto another program.  Later, when that normally safe 
  362.         program is run it will, in part, execute a set of instructions 
  363.         which will infect other programs and then potentially, trigger 
  364.         the Trojan portion of the program contained within the virus.
  365.  
  366.         The danger of the virus program is twofold. First, it contains a 
  367.         Trojan which will cause damage to your hard disk.  The second 
  368.         danger is the reason why everyone is busy building bomb shelters.  
  369.         This danger is that the virus program will infect other programs 
  370.         and they in turn will infect other programs and so forth.  Since 
  371.         it can also infect programs on your floppy disks, you could 
  372.         unknowingly infect other machines!  Pretty dangerous stuff, 
  373.         alright!
  374.  
  375.         Kenneth van Wyck, one of the computer folks over at Lehigh 
  376.         University, first brought a particular virus to the attention of 
  377.         the computer community.  This virus infects a program, which 
  378.         every MS-DOS computer must have, called COMMAND.COM.  This is the 
  379.         Command Line Interpreter and is the interface between your 
  380.         keyboard and the MS-DOS operating system itself.  Whatever you 
  381.         type at the C> prompt will be interpreted by it.
  382.  
  383.         Well, the virus subverts this intended function, causing the 
  384.         infection of neighboring COMMAND.COMs before continuing with 
  385.         normal functionality of the command you typed.  After a certain 
  386.         number of "infections", the Trojan aspect of the program goes 
  387.         off, causing you to lose data.
  388.  
  389.         The programmer was clever.  But still a worm.  And still 
  390.         deserving of contempt instead of respect.  Think of what good 
  391.         purposes the programmer could have put his or her talents to 
  392.         instead of creating this damage.  And consider what this 
  393.         programmer must do, in covering up what they've done.  They 
  394.         certainly can't tell anyone what they've accomplished.  
  395.         Justifiable homicide comes to mind, but since the worms they must 
  396.  
  397.                                         4
  398.  
  399.  
  400.  
  401.         hang around are probably as disreputable as they are, they must 
  402.         hold their little creation a secret.
  403.  
  404.         A pity.  Hopefully, the worm is losing sleep.  Or getting a sore 
  405.         neck looking behind them wondering which of their "friends" are 
  406.         gonna turn them in for the reward I list towards the end of this 
  407.         document.
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.                                         5
  459.  
  460.  
  461.  
  462.                                   Introduction
  463.  
  464.         The Challenge to the Worm
  465.         =========================
  466.  
  467.         When I first released a program to try to thwart their demented 
  468.         little efforts, I published this letter in the archive (still in 
  469.         the FLU_SHOT+ archive of which this is a part of).  What I say in 
  470.         it still holds:
  471.  
  472.                     As for the designer of the virus program: most 
  473.                     likely an impotent adolescent, incapable of 
  474.                     normal social relationships, and attempting to 
  475.                     prove their own worth to themselves through 
  476.                     these type of terrorist attacks.
  477.  
  478.                     Never succeeding in that task (or in any 
  479.                     other), since they have no worth, they will one 
  480.                     day take a look at themselves and what they've 
  481.                     done in their past, and kill themselves in 
  482.                     disgust.  This is a Good Thing, since it saves 
  483.                     the taxpayers' money which normally would be 
  484.                     wasted on therapy and treatment of this 
  485.                     miscreant.
  486.  
  487.                     If they *really* want a challenge, they'll try 
  488.                     to destroy *my* hard disk on my BBS, instead of 
  489.                     the disk of some innocent person.  I challenge 
  490.                     them to upload a virus or other Trojan horse to 
  491.                     my BBS that I can't disarm.  It is doubtful the 
  492.                     challenge will be taken: the profile of such a 
  493.                     person prohibits them from attacking those who 
  494.                     can fight back.  Alas, having a go with this  
  495.                     lowlife would be amusing for the five minutes 
  496.                     it takes to disarm whatever they invent.
  497.  
  498.                     Go ahead, you good-for-nothing little 
  499.                     slimebucket:  make *my* day!
  500.  
  501.  
  502.         Alas, somebody out there opted to do the cowardly thing and to 
  503.         use the FLUSHOT programs as a vehicle for wrecking still more 
  504.         destruction on people like you.  The FLUSHOT3 program was 
  505.         redistributed along with a companion program to aid you in 
  506.         reading the documentation.  It was renamed FLUSHOT4.  And the 
  507.         reader program was turned into a Trojan itself.
  508.  
  509.         I guess the programmer involved was too cowardly to take me up on 
  510.         my offer and prefers to hurt people not capable of fighting back.  
  511.         I should have known that, I suppose, but I don't normally think 
  512.         of people who attack innocents. Normally, I think of people to 
  513.         respect, not people to pity, certainly not people who must cause 
  514.         such damage in order to "get off".
  515.  
  516.         They are below contempt, obviously, and can do little to help 
  517.  
  518.                                         6
  519.  
  520.  
  521.  
  522.         themselves out of the mire they live in.
  523.  
  524.         Still, a worm is a worm.
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.                                         7
  580.  
  581.  
  582.  
  583.                                   About FLUSHOT
  584.  
  585.         A Brief History
  586.         ===============
  587.  
  588.         The original incarnation of FLU_SHOT was a quick hack done in my 
  589.         spare time.  It had a couple of bugs in it which caused it to 
  590.         trigger when it shouldn't, and a few conditions which I had to 
  591.         fix.  A strangeness in how COMMAND.COM processed certain 
  592.         conditions when I "failed" an operation caused people to lose 
  593.         more data than they had intended -- certainly not my intent!
  594.  
  595.         FLU_SHOT was modified and became FLUSHOT2.  It included some 
  596.         additional protections, protecting some other important system 
  597.         files, and protecting against direct disk writes which can be 
  598.         used to circumvent FLUSHOT's protection mechanisms.
  599.  
  600.         Additionally, FLUSHOT2 forced an exit of the program currently 
  601.         running instead of a fail condition when you indicated that an 
  602.         operation should not be carried out.
  603.  
  604.         FLUSHOT2 was also now distributed in the popular archive format 
  605.         (have you remembered to send your shareware check into Phil Katz 
  606.         for his efforts?  You really should.  It ain't that much money!).
  607.  
  608.         Next came FLUSHOT3. A bug was fixed which could have caused 
  609.         certain weird things when you denied direct disk I/O to certain 
  610.         portions of DOS 3.x. 
  611.  
  612.         The enhancements to FLUSHOT3 included the ability to enter a 'G' 
  613.         when FLUSHOT was triggered.  This allowed FLUSHOT to become 
  614.         inactive until an exit was called by the foreground task.  So, 
  615.         when you used some trustworthy program which did direct disk I/O, 
  616.         you wouldn't be pestered with constant triggering after you enter 
  617.         the 'G'.  Primarily this was a quick hack to allow programs such 
  618.         as the FORMAT program to run without FLUSHOT being triggered each 
  619.         time it tried to do any work it was supposed to.
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.                                         8
  641.  
  642.  
  643.  
  644.                                   About FLUSHOT
  645.  
  646.         FLU_SHOT+ Features and Enhancements
  647.         ===================================
  648.  
  649.         This release of FLU_SHOT has a new name: FLU_SHOT+.  Because 
  650.         FLUSHOT4 was a Trojan, I opted to change the name.  Besides, 
  651.         FLU_SHOT+ is the result of some real effort on my part, instead 
  652.         of being a part-time quick hack.  I hope the effort shows.
  653.  
  654.         FLUSHOT is now table driven.  That table is in a file which I 
  655.         call FLUSHOT.DAT.  It exists in the root directory on your C: 
  656.         drive.  However, I'll advise you later on how to change its 
  657.         location so that a worm can't create a Trojan to modify that 
  658.         file.
  659.  
  660.         This file now allows you to write and/or read protect entire 
  661.         classes of programs.  This means that you can write protect from 
  662.         damage all of your *.COM, *.EXE, *.BAT, and *.SYS files.  You can 
  663.         read protect all of your *.BAT files so that a nasty program can 
  664.         not even determine what name you used for FLU_SHOT+ when you 
  665.         invoked it!
  666.  
  667.         Additionally, you can now automatically check programs when you 
  668.         first invoke FLU_SHOT+ to determine if they've changed since you 
  669.         last looked at them.  Called checksumming, it allows you to know 
  670.         immediately if one of the protected programs has been changed 
  671.         when you're not looking.  Additionally, this checksumming can 
  672.         even take place each time you load the program for execution.
  673.  
  674.         Also, FLU_SHOT+ will advise you when any program "goes TSR".  TSR 
  675.         stands for "Terminate and Stay Resident", allowing pop-ups and 
  676.         other useful programs to be created.  A worm could create a 
  677.         program which leaves a bit of slime behind.  Programs like 
  678.         Borland's SideKick program, a wonderful program and certainly not 
  679.         a Trojan or virus, is probably the best known TSR.   FLU_SHOT+ 
  680.         will advise you if any program attempts to go TSR which you 
  681.         haven't already registered in your FLUSHOT.DAT file.
  682.  
  683.         Finally, FLU_SHOT+ will also now pop-up a little window in the 
  684.         middle of your screen when it gets triggered.  It also will more 
  685.         fully explain why it was triggered.  The pop-up window means that 
  686.         your screen won't get screwed up beyond recognition -- unless 
  687.         you're in graphics mode when it pops up.  Sorry, 'dems the 
  688.         breaks!
  689.  
  690.         This version, FLU_SHOT+, has some other substantial improvements 
  691.         on the security side, has a couple of bug fixes here and there 
  692.         and is generally the same program - just a little more reliable, 
  693.         and a little more user friendly.  And, more closely attuned to 
  694.         what you, the user community, have asked me for.
  695.  
  696.         More information about FLU_SHOT+ and its enhancements can be 
  697.         found in the file "UPDATES.TXT", in the archive.  My thanks to 
  698.         Mr. Mark Hamilton of the UK for some enhancements ideas and code.
  699.  
  700.  
  701.                                         9
  702.  
  703.  
  704.  
  705.  
  706.                                   About FLUSHOT
  707.  
  708.         Registering FLU_SHOT+
  709.         =====================
  710.  
  711.         FLU_SHOT+ is not a free program.  You're encouraged to use it, to 
  712.         distribute it to your friends and co-workers.  If you end up not 
  713.         using it for some reason, let me know why and I'll see if I can 
  714.         do something about it in the next release.
  715.  
  716.         But, the right to use FLU_SHOT+ is contingent upon you paying for 
  717.         the right to use it.  I ask for fifteen dollars as a registration 
  718.         fee, plus four dollars to meet my costs for shipping, handling, 
  719.         and processing each order.  This entitles you to get informed 
  720.         when the next update is available, and to have someone available 
  721.         to help support you with any problem you might have with the 
  722.         program.  And it allows you to pay me, in part, for my labor in 
  723.         creating the entire FLU_SHOT series.  I don't expect to get my 
  724.         normal consulting rate or to get a return equal to that of other 
  725.         programs which I've developed and sell through more traditional 
  726.         channels.  That's not my intent, or I would have made FLU_SHOT+ a 
  727.         commercial program and you'd be paying lots more money for it.
  728.  
  729.         Some people are uncomfortable with the shareware concept, or 
  730.         believe that there ain't no such thing as Trojan or Virus 
  731.         programs, and that a person who profits from the distribution of 
  732.         a program such as FLU_SHOT must be in it for the money.  Although 
  733.         I sympathize with their feelings, I feel that a user of FLU_SHOT 
  734.         simply *must* pay for their usage of the program -- using it for 
  735.         free is paramount to stealing, and we know how wrong that is!
  736.  
  737.         I've created an alternative for these folks.  I'll call it 
  738.         "charityware" [first called that, to my knowledge, by Roedy 
  739.         Green].  You can also register FLU_SHOT+ by sending me a check 
  740.         for $15 made out to your favorite charity. And a check made out 
  741.         to me for $4 to handle my costs.  Be sure to include a stamped 
  742.         and addressed envelope.  I'll forward the monies onto them and 
  743.         register you fully.
  744.  
  745.         Of course, if you wish, you can send me a check for more than 
  746.         $19.  I'll cash it gladly (I'm no fool!).
  747.  
  748.  
  749.         Site Licensing of FLU_SHOT+
  750.         ===========================
  751.  
  752.         So, you run the computer department of a big corporation, you got 
  753.         a copy of FLU_SHOT+, decided it was wonderful and that it  did 
  754.         everything you wanted and sent in your ten bucks.  Then you 
  755.         distributed it to your 1000 users.
  756.  
  757.         Not what is intended by the shareware scheme.  *Each* site using 
  758.         FLU_SHOT+ should be registered.  That's ten bucks a site, me 
  759.         bucko!  Again, make the check out to charity if you're 
  760.  
  761.                                        10
  762.  
  763.  
  764.  
  765.         uncomfortable with the idea of a programmer actually deriving an 
  766.         income from their work.
  767.  
  768.         However, if you've really got 1000 computers, you should give me 
  769.         a call.  As much as I'd like to get $15 for each site, that 
  770.         wouldn't be fair to you.  So, quantity discounts are available.
  771.  
  772.         Here's our quantity discount schedule.  Remember to add in the 
  773.         four dollar charge for each order.
  774.  
  775.                   Quantity            Price Each
  776.                ==============       ===============
  777.                 1 -  49                $15 + $4/order
  778.                50 - 249                $12 + $4/order
  779.               250 - 499                $10 + $4/order
  780.               500 - 9999               $ 8 + $4/order
  781.               10,000+                No Charge (after paying for 9999!)
  782.  
  783.         Site licensee's get a "gold" disk, and make their own copies at 
  784.         their site, working on the honor system.  Each site license does 
  785.         require a separate agreement, so be sure to give us a call to 
  786.         work out the details.  End-user contact *must* be through a 
  787.         single contact point in order for any of these discounts to 
  788.         apply.
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.                                        11
  823.  
  824.  
  825.  
  826.                                  Using FLU_SHOT+
  827.  
  828.         Down and Dirty Installation: Step By Step
  829.         =========================================
  830.  
  831.         Consider this area of the manual to be the "I hate to read 
  832.         manuals" approach.  We encourage you to read the manual, since 
  833.         about 90% of our tech support calls are answered by telling the 
  834.         caller to turn to a given page in the manual.  Some people, 
  835.         however, just want the ability to use the product immediately, 
  836.         without wading through the manual.  So, if you're one of those 
  837.         gung-ho'ers, here's a step-by-step approach:
  838.  
  839.         1)   If you received FLU_SHOT+ on a diskette, place that diskette 
  840.         in the A: drive on your system.  If you received FLU_SHOT+ from a 
  841.         Bulletin Board System, then you've obviously figured out how to 
  842.         de-arc and de-compress the files contained within the archive (if 
  843.         not, how are you reading this?).
  844.  
  845.         2)   Type the following commands:
  846.                   COPY A:FSP.COM C:\
  847.                   COPY A:FLUSHOT.DAT C:\
  848.  
  849.         3)   Make C: your default drive by simply typing "C:", followed 
  850.         by a carriage return.  Make the root directory your default 
  851.         directory simply by typing "CD \", followed by a carriage return.
  852.  
  853.         4)   Type "FSP", followed by a carriage return.  This will invoke 
  854.         FLU_SHOT+.
  855.  
  856.         5)   You should expect to see three error messages.  These will 
  857.         take one of two forms.  One form will tell you that the checksum 
  858.         for the listed file doesn't match the actual checksum for that 
  859.         file.  If you see this message, copy down the displayed number on 
  860.         a separate piece of paper, along with the filename.  Press any 
  861.         key to continue on to the next file.
  862.  
  863.         6)   If you see a message indicating that a given file is not 
  864.         found, then you'll have to remember what the names your computer 
  865.         uses for the on-disk BIOS (FLU_SHOT+ expects "IBMBIO.SYS") and 
  866.         on-disk Disk Operating System (FLU_SHOT+ expects "IBMDOS.SYS") 
  867.         and edit the names in the FLUSHOT.DAT file appropriately.  If, 
  868.         for example, your system uses the name of "IOSYS.SYS" and 
  869.         "MSSYS.SYS" for these files, replace the missing filenames within 
  870.         the FLUSHOT.DAT file to reflect the actual names you use.  When 
  871.         you finish with these edits, reboot your system and start with 
  872.         step 3), above.
  873.  
  874.         7)   At this point, you should have three files with their actual 
  875.         checksums on a piece of paper.  Edit the FLUSHOT.DAT file in your 
  876.         C:\ directory to reflect these checksums.  Replace the default 
  877.         "[12345]" with the actual checksums you've written down.  So, if 
  878.         the actual checksum for your COMMAND.COM file is "32767", the 
  879.         line in your FLUSHOT.DAT to reflect this should read:
  880.                   C=C:\COMMAND.COM[32767]
  881.  
  882.  
  883.                                        12
  884.  
  885.  
  886.  
  887.  
  888.         8)   Reboot your system.  When you invoke FLU_SHOT+, by typing 
  889.         FSP followed by a carriage return, everything should run to 
  890.         completion, leaving you at your C> prompt.
  891.  
  892.         9)   If you wish to cause FLU_SHOT+ to run whenever you first 
  893.         boot your computer, simply edit your AUTOEXEC.BAT file, found in 
  894.         the root directory on your "boot" drive, to include "FSP" as the 
  895.         last line.
  896.  
  897.         10)  For extra security, you might wish to rename the 
  898.         FLUSHOT.DAT.  To do so, read the section in this manual which 
  899.         describes the FLU_POKE program.
  900.  
  901.         11)  If there are any problems in the installation procedure, it 
  902.         probably means that you're using something a little unique in the 
  903.         way of computer equipment or software packages.  You'll have to 
  904.         read the entire document.  Sorry.
  905.  
  906.         12)  FLU_SHOT+, "out of the box", offers some pretty good 
  907.         protection.  If you want to substantially enhance the security 
  908.         FLU_SHOT+ offers you, please read the rest of the manual?  
  909.         Remember that we will *not* answer any tech support calls from 
  910.         people who have not read the manual.
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.                                        13
  945.  
  946.  
  947.  
  948.                                  Using FLU_SHOT+
  949.  
  950.         The FLUSHOT.DAT file
  951.         ====================
  952.  
  953.         FLU_SHOT+ is table driven by the contents of the FLUSHOT.DAT 
  954.         file.  This file normally exists in the root directory of your C: 
  955.         drive (C:\FLUSHOT.DAT).
  956.  
  957.         A little later in this document you'll see how to disguise the 
  958.         data file name, making life tougher for the worms out there.  But 
  959.         for the purposes of this document, we'll assume that the file is 
  960.         called C:\FLUSHOT.DAT.
  961.  
  962.         The FLU_SHOT+ program will read this data file exactly once. It 
  963.         reads the data from the data file into memory and overwrites the 
  964.         name of the data file in so doing.  A little extra protection in 
  965.         hiding the name of the file.
  966.  
  967.         This data file contains a number of lines of text.  Each line of 
  968.         text is of the form:
  969.  
  970.         <Command>=<filename><options>
  971.  
  972.         Command can be any one of the following characters:
  973.  
  974.              P    -    Write Protect the file named
  975.              R    -    Read Protect the file named
  976.              E    -    Exclude the file named from matching P or R lines
  977.              T    -    The named file is a legitimate TSR
  978.              C    -    Perform checksum operations on the file named
  979.  
  980.         The  filename can be an ambiguous file if you wish for all 
  981.         commands except the 'T' and 'C' commands.  This means that:
  982.  
  983.              C:\level1\*.COM
  984.  
  985.         will specify all COM files on your C: drive in the level1 
  986.         directory (or its sub-directories). Specifying:
  987.  
  988.              C:\level1\*\*.EXE
  989.  
  990.         would specify all EXE files in subdirectories under the C:\level1 
  991.         directory, but would not include that directory itself.
  992.  
  993.         You can also use the '?' operator to specify ambiguous characters 
  994.         as in:
  995.  
  996.              ?:\usr\bin\?.COM
  997.  
  998.         would be used to specify files on any drive in the \usr\bin 
  999.         directory on that drive.  The files would have to be single 
  1000.         letter filenames with the extension of 'COM'.
  1001.  
  1002.         Ambiguous file names are not allowed for the 'T' and 'C' options.
  1003.  
  1004.  
  1005.                                        14
  1006.  
  1007.  
  1008.  
  1009.                                  Using FLU_SHOT+
  1010.  
  1011.         Protecting files from Write Access
  1012.         ==================================
  1013.  
  1014.         Use the 'P=' option to protect files from write access.  To 
  1015.         disallow writes to any of your COM, EXE, SYS, and BAT files, 
  1016.         specify lines of the form:
  1017.  
  1018.              P=*.COM
  1019.              P=*.EXE
  1020.              P=*.SYS
  1021.              P=*.BAT
  1022.  
  1023.         which protects these files on any disk, in any directory.
  1024.  
  1025.         Protecting files from Read Access
  1026.         =================================
  1027.  
  1028.         Similarly, you can use the 'R' command to protect files from 
  1029.         being read by a program (including the ability to 'TYPE' a 
  1030.         file!).  To prevent read access to all of your BAT files, use a 
  1031.         line such as:
  1032.  
  1033.              R=*.BAT
  1034.  
  1035.         Combinations of R and P lines are allowed, so the combination of 
  1036.         the above lines would prevent read or write access to all batch 
  1037.         files.
  1038.  
  1039.         Excluding files
  1040.         ===============
  1041.  
  1042.         Programmers in particular should find usage for the 'E' command.  
  1043.         This allows you to exclude matching filenames from other match 
  1044.         operations.  Assume you're doing development work in the 
  1045.         C:\develop directory.
  1046.  
  1047.         You could exclude FLU_SHOT+ from being triggered by including a 
  1048.         line such as:
  1049.  
  1050.              E=C:\develop\*.*
  1051.  
  1052.         Of course, you might have development work on many disks under a 
  1053.         directory of that name.  If you do, you might include a line 
  1054.         which looks like:
  1055.  
  1056.              E=?:\develop\*.*
  1057.                   or
  1058.              E=*\develop*
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.                                        15
  1067.  
  1068.  
  1069.  
  1070.  
  1071.         Checksumming files
  1072.         ==================
  1073.  
  1074.         This line is a little more complicated than others and involves 
  1075.         some setup work.  It's worth it though!
  1076.  
  1077.         A checksum is a method used to reduce a files validity into a 
  1078.         single number.  Adding up the values of the bytes which make up 
  1079.         the file would be a simple checksum method.  Doing more complex 
  1080.         mathematics allows for more and more checking information to be 
  1081.         included in a test.
  1082.  
  1083.         If you use a lie on the form:
  1084.  
  1085.              C=C:\COMMAND.COM[12345]
  1086.  
  1087.         then when FLU_SHOT+ first loads it will check the validity of the 
  1088.         file against the number in the square brackets.  If the checksum 
  1089.         calculated does not match the number presented, you'll be advised 
  1090.         with a triggering of FLUSHOT, which presents the correct 
  1091.         checksum.
  1092.  
  1093.         When you first set up your FLUSHOT.DAT file, use a dummy number 
  1094.         such as '12345' for each of the files you wish to checksum.  
  1095.         Then, when you run FLUSHOT, you should copy down the "erroneous" 
  1096.         checksum presented.  Then, edit the FLUSHOT.DAT file and replace 
  1097.         the dummy number with the actual checksum value you had copied 
  1098.         down. Voila! If even one byte in the is changed, you'll be 
  1099.         advised the next time you run FLU_SHOT+.
  1100.  
  1101.         But wait! There's more! Not available in stores!
  1102.  
  1103.         Sorry.  I got carried away.
  1104.  
  1105.         Seriously, there is more.  When a "checksummed" file is loaded by 
  1106.         MS-DOS, it will, by default, be checksummed again.  So, if you 
  1107.         had a line such as:
  1108.  
  1109.              C=C:\usr\bin\WS.COM[12345]
  1110.  
  1111.         the venerable old WordStar program (still *my* editor of choice!) 
  1112.         would be checksummed each time you went to edit a file.
  1113.  
  1114.         Of course, you might not want the overhead of that checksumming 
  1115.         to take place each time you load a program.  Therefore, a few 
  1116.         switches have been added.  The switches are place immediately 
  1117.         after the ']' in the checksum line:
  1118.  
  1119.              C=C:\usr\bin\WS.COM[12345]<switch>
  1120.  
  1121.         These switches are:
  1122.  
  1123.              ,n   -    will only checksum the file only 'n' times. Only
  1124.                        one digit allowed.
  1125.  
  1126.  
  1127.                                        16
  1128.  
  1129.  
  1130.  
  1131.  
  1132.              -    -    Only checksum this file when FLU_SHOT+ first
  1133.                        loads.  ',1' and '-' are equivalent.
  1134.  
  1135.              +    -    Only checksum this file when it is loaded and
  1136.                        executed, not when FLU_SHOT+ first loads
  1137.  
  1138.         Therefore, if you wished to only check your WS.COM file when you 
  1139.         first loaded the FLU_SHOT+ program, you'd specify a line as:
  1140.  
  1141.              C=C:\usr\bin\ws.com[12345],1
  1142.                   or
  1143.              C=C:\usr\bin\ws.com[12345]-
  1144.  
  1145.         If you wished to checksum your program called "MY_PROG.EXE" only 
  1146.         when it was used, try:
  1147.  
  1148.              C=C:\path\MY_PROG.EXE[12345]+
  1149.  
  1150.  
  1151.         Registering a TSR program
  1152.         =========================
  1153.  
  1154.         Any unregistered TSR program which is run after FLU_SHOT+ will 
  1155.         cause a trigger when they "go TSR".  You can register a program 
  1156.         so no trigger goes off by specifying it in a line such as:
  1157.  
  1158.              T=C:\usr\bin\tsr_s\sk.com
  1159.  
  1160.         which will keep FLU_SHOT+ from complaining about sk.com.  Make 
  1161.         sure to take a look at the '-T' option, specified in the next 
  1162.         section.
  1163.  
  1164.         Restricted Access
  1165.         =================
  1166.  
  1167.         Normally, when access to a file causes FLU_SHOT+ to trigger, the 
  1168.         user is given the option of hitting a 'Y' to allow the access, or 
  1169.         a 'G' to allow the access until program exit or a key is hit.  
  1170.         However, in some cases, access to a file should *never* be 
  1171.         allowed.  If you end a line in your FLUSHOT.DAT file with an '!', 
  1172.         then the trigger will indicate that this is a restricted access 
  1173.         file, and the user will be asked to press a key to continue.  In 
  1174.         any case, trigger accesses resulting from a line with a '!' at 
  1175.         the end will not be allowed to go forth.  For example, if you 
  1176.         never want anyone to be able to read an AUTOEXEC.BAT file on any 
  1177.         of your disks, have a line of the form:
  1178.  
  1179.                   R=*AUTOEXEC.BAT!
  1180.  
  1181.         in your FLUSHOT.DAT file.  That's pretty easy!  (Make sure, 
  1182.         however, to take a look at the FSP command line arguments for the 
  1183.         '--' switch.)
  1184.  
  1185.  
  1186.  
  1187.                                        17
  1188.  
  1189.  
  1190.  
  1191.         Protecting the FLUSHOT.DAT file
  1192.         ===============================
  1193.  
  1194.         Obviously, the weak link in the chain of the protection which 
  1195.         FLU_SHOT+ offers you is the FLUSHOT.DAT file.
  1196.  
  1197.         You would think that you'd want to protect the FLUSHOT.DAT file 
  1198.         from reads and writes as specified above.  However this, too, 
  1199.         leaves a gaping security hole: memory could be searched for it, 
  1200.         and it could be located that way.  A better alternative exists.  
  1201.         In the distribution package for FLUSHOT+ exists a program called 
  1202.         FLU_POKE.COM.  This program allows you to specify the new name 
  1203.         you wish to call the FLUSHOT.DAT file. Simply type:
  1204.  
  1205.              FLU_POKE <flushot_name>
  1206.  
  1207.         where <flushot_name> represents the full path filename of your 
  1208.         copy of FLU_SHOT+.
  1209.  
  1210.         You'll be prompted for the name of the FLUSHOT.DAT file.  Enter 
  1211.         the name you've selected (remember to specify the disk and 
  1212.         directory as part of the name).  Voila!  Nothing could be easier.
  1213.  
  1214.         Here's an example, assuming that you've already named your 
  1215.         FLUSHOT.DAT to FRED.TXT, and it resides in the C:\DOC directory.  
  1216.         Assume that FSP.COM is in the current directory and has been 
  1217.         renamed to MYFILE.COM.  Here's the command line:
  1218.  
  1219.              FLU_POKE MYFILE.COM
  1220.              File opened ok...
  1221.              Enter the FLUSHOT.DAT filename (full pathname): FRED.TXT
  1222.  
  1223.  
  1224.         Protection Recommendations
  1225.         ==========================
  1226.  
  1227.         Here's a sample FLUSHOT.DAT file, basically the same one included 
  1228.         in the archive.  Your actual checksums will differ, and you may 
  1229.         want to modify what files and directories are protected. 
  1230.         Obviously, your exact needs are different than mine, so consider 
  1231.         this a generic FLUSHOT.DAT:
  1232.  
  1233.         P=*.bat
  1234.         P=*.sys
  1235.         P=*.exe
  1236.         P=*.com
  1237.         R=*AUTOEXEC.BAT
  1238.         R=*CONFIG.SYS
  1239.         E=?\dev\*
  1240.         C=C:\COMMAND.COM[12345]-
  1241.         C=C:\IBMBIO.COM[12345]-
  1242.         C=C:\IBMDOS.COM[12345]-
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.                                        18
  1249.  
  1250.  
  1251.  
  1252.         Allowing "dangerous" programs to run
  1253.         ====================================
  1254.         In some cases, though, you'll still want the ability to let 
  1255.         "trusted" programs to run -- even if they are potentially 
  1256.         dangerous.  A good example of this is the DOS FORMAT program:  
  1257.         here is a program specifically designed to overwrite the data on 
  1258.         your disk in such a way that it would be difficult, at best, to 
  1259.         recover.  Yet, the program is a necessary part of your day-to-day 
  1260.         computer usage.
  1261.  
  1262.         Therefore, the 'X=' switch has been added in to allow a program 
  1263.         such as FORMAT to run without interruption.  THIS IS A POTENTIAL 
  1264.         SECURITY HOLE.  To prevent an 'X=' program from being corrupted, 
  1265.         I suggest you also include any 'X=' program as both a 'C=' and a 
  1266.         'P=' program as well: any writes to the file would cause FLU_SHOT 
  1267.         to trigger, and you wouldn't be able to run a modified program 
  1268.         without first giving FLU_SHOT permission.  Use 'X=' sparingly.  
  1269.         I'm rather uncomfortable with it myself.
  1270.  
  1271.  
  1272.         Protecting Your Boot Track
  1273.         ==========================
  1274.         Some of the virus writers out there are getting pretty devious: 
  1275.         they are creating viruses which will replace your "boot record" 
  1276.         with something of their own creation which will first create a 
  1277.         virus upon a system boot, then will run your actual boot program.  
  1278.         The "boot program" is a small program at the beginning of your 
  1279.         disk, telling the system what to do when you first turn the 
  1280.         system on.  What makes these types of viruses particularly 
  1281.         dangerous is that they are run before FLU_SHOT+ can be run:  by 
  1282.         the time FLU_SHOT+ is running, you're already infected!
  1283.  
  1284.         Therefore, you might want to consider using the Boot Checksum 
  1285.         option line in your FLUSHOT.DAT file.  It takes the form of:
  1286.  
  1287.              B=<disk><checksum>
  1288.  
  1289.         where <disk> is a single character (no ':') indicating which disk 
  1290.         drive you boot from, and checksum is the boot checksum.  The boot 
  1291.         checksum is checked each time you exit a program and when you 
  1292.         first invoke FLU_SHOT+.
  1293.  
  1294.         First, create a bogus boot checksum entry, as in:
  1295.  
  1296.              B=C12345
  1297.  
  1298.         then, run FLU_SHOT+.  You'll be advised of what the actual boot 
  1299.         checksum is, and you should edit that checksum into the "B=" 
  1300.         line.
  1301.  
  1302.         That's it!  You're now protected from some virus program somehow 
  1303.         getting around the protections FLU_SHOT+ offers and modifying the 
  1304.         boot record, and you'll be advised if something changed your boot 
  1305.         record while you weren't looking. Never boot off a floppy if you 
  1306.         can avoid it, though:  that's how a lot of viruses spread!
  1307.  
  1308.  
  1309.                                        19
  1310.  
  1311.  
  1312.  
  1313.  
  1314.                                Invoking FLU_SHOT+
  1315.  
  1316.         Running FLUSHOT+
  1317.         ================
  1318.  
  1319.         For extra protection, after you've run FLU_POKE, you should 
  1320.         rename the FLU_SHOT+ program is something unique and meaningful 
  1321.         to you, but not a worm.
  1322.  
  1323.         Assuming you didn't rename it, however, you could invoke the 
  1324.         program simply by typing:
  1325.  
  1326.              FSP
  1327.  
  1328.         when at the prompt.  That's all there is to it.  When you're 
  1329.         satisfied, you can add it to your AUTOEXEC.BAT file, after all of 
  1330.         your trusted programs have run.
  1331.  
  1332.         But there are some options you should know about:
  1333.  
  1334.         Checksumming the in-memory table
  1335.         ================================
  1336.         Since the wily worm may well be able to thwart some of the 
  1337.         efforts of FLU_SHOT+ by playing nasty games with the in-memory 
  1338.         copy of the FLUSHOT.DAT file, FLU_SHOT+ will also check this 
  1339.         table against a checksum it generates on a regular basis.  If the 
  1340.         table gets corrupted, you'll be advised of it.  This table is 
  1341.         checked with each call to DOS, so the table must be in good shape 
  1342.         before any disk I/O is done.
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355.  
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.                                        20
  1371.  
  1372.  
  1373.  
  1374.         Intercepting Direct Disk Writes Through INT13 and INT40
  1375.         =======================================================
  1376.  
  1377.         The default operation of FLU_SHOT+ is to intercept and examine 
  1378.         every call to the direct disk routines.  You can *disable* this 
  1379.         by including the '-F' switch on your command line:
  1380.  
  1381.              FSP -F
  1382.  
  1383.         This is not recommended, but exists primarily for developers who 
  1384.         can't use the constant triggering one of their programs may 
  1385.         cause.
  1386.  
  1387.  
  1388.         What about INT26
  1389.         ================
  1390.         Similarly, the same exists for the direct writes which normally 
  1391.         are only made by DOS through interrupt 26.  Again, I do not 
  1392.         recommend you disable the checking, but if you desire to do so, 
  1393.         use the '-D' switch.
  1394.  
  1395.         Turning off the header message
  1396.         ==============================
  1397.         If you've no desire to see the rather lengthy welcome message,  
  1398.         displayed when you first use FLU_SHOT+, use the '-h' switch.
  1399.  
  1400.         Disabling Triggering on Open with Write Access
  1401.         ==============================================
  1402.         Files which are opened with write access allowed are often not 
  1403.         ever written to.  For example, a COPY A.COM B.COM will open 
  1404.         *both* files for write access, although DOS will not actually 
  1405.         write to the A.COM file.  Programmer laziness is the most likely 
  1406.         excuse, and I'm as guilty of it as anyone else.  However, this 
  1407.         can cause some false alarms, which can alarm you!  If you specify 
  1408.         the '-W' switch on your command line, you won't have this 
  1409.         particular alert come up.
  1410.  
  1411.         Since the actual write operation to this file is also protected 
  1412.         by FLU_SHOT+, there is no real danger with using the '-W' option 
  1413.         -- except that a "protected" file could be created anew without 
  1414.         you being triggered.  That's not too big a deal.  Future versions 
  1415.         of FLU_SHOT+ will most probably have the '-W' option as the 
  1416.         default operation.
  1417.  
  1418.  
  1419.         Changing the Trigger Window Attributes
  1420.         ======================================
  1421.         Certain displays, particularly monochrome displays which try to 
  1422.         emulate color displays, have a problem with the default selection 
  1423.         of attributed in the trigger window of FLU_SHOT+.  If you use the 
  1424.         '-Axx:yy' switch, you can modify these attributes.
  1425.  
  1426.         The xx:yy represent the hex values (as selected from the table 
  1427.         below) for the interior and the perimeter of the trigger window.  
  1428.         The 'xx' represents the interior attribute, the 'yy', the 
  1429.  
  1430.                                        21
  1431.  
  1432.  
  1433.  
  1434.         perimeter.  If you use the '-A' switch, you *must* select both of 
  1435.         these values - failure to do so may give a rather strange 
  1436.         display.
  1437.  
  1438.         What follows is a table of color and characteristics associated 
  1439.         with the attribute byte.  A byte has eight bits. Counting from 
  1440.         the leftmost bit, the first bit of the attribute byte, if set, 
  1441.         will cause the character to blink, regardless of other settings.  
  1442.         The next three bits represent the background color for a given 
  1443.         character position.  The next bit indicates whether a character 
  1444.         should have high intensity turned on.  Finally, the last three 
  1445.         bits represent the color of the character itself.  To create the 
  1446.         color of your choice, simply combine the bits, then calculate 
  1447.         what they are in hexadecimal.  If you're not sure of how to 
  1448.         create a hexadecimal representation of a binary number, have no 
  1449.         fear:  that information follows, too.
  1450.  
  1451.                                     Bkgrnd    Frgrnd
  1452.                                  B   CLR   I   CLR
  1453.                                  [] [][][] [] [][][]
  1454.                     Brightness----^  | | |  |  | | |
  1455.                     Background-------+-+-+  |  | | |
  1456.                     Intensity---------------+  | | |
  1457.                     Foreground-----------------+-+-+
  1458.  
  1459.                                               Value in hex
  1460.         Bit Pattern    Value      Color       if B or I set 
  1461.         ====================================================
  1462.           0  0  0      0         Black            8
  1463.           0  0  1      1         Blue             9
  1464.           0  1  0      2         Green            a
  1465.           0  1  1      3         Cyan             b
  1466.           1  0  0      4         Red              c
  1467.           1  0  1      5         Magenta          d
  1468.           1  1  0      6         Yellow           e
  1469.           1  1  1      7         White            f
  1470.  
  1471.         For example, to create an attribute byte that is high intensity, 
  1472.         blinking yellow characters on a green background, the attribute 
  1473.         byte would be:
  1474.  
  1475.                                     Bkgrnd    Frgrnd
  1476.                                  B   CLR   I   CLR
  1477.                                  1  0 1 0  1  1 1 0
  1478.                                 \--------/ \-------/
  1479.                                     |          |
  1480.                                     A          E
  1481.                     Attribute char:     AE
  1482.  
  1483.         IMPORTANT: If the value is less than 10 (hex), you *must* include 
  1484.         a leading zero or strange things will happen to the selected 
  1485.         value.
  1486.  
  1487.  
  1488.  
  1489.  
  1490.  
  1491.                                        22
  1492.  
  1493.  
  1494.  
  1495.  
  1496.         Allowing Trusted TSR's to Work
  1497.         ==============================
  1498.         Normally, you'd load all of your trusted TSR's before FLUSHOT+ is 
  1499.         loaded from within your AUTOEXEC.BAT file.  However, you might 
  1500.         want to use SideKick once in a while, removing it from memory as 
  1501.         you desire.  This could cause some problems, since SideKick, and 
  1502.         programs like it, take over certain interrupts, and FLU_SHOT+ 
  1503.         could get confused about whether this is a valid call or a call 
  1504.         that shouldn't be allowed.  Normally, FLU_SHOT+ will trigger on 
  1505.         these calls, which is safer, but can be annoying.  If you use the 
  1506.         special '-T' switch upon program invocation, then calls which 
  1507.         trusted TSR's (those specified with the 'T=' command in your 
  1508.         FLUSHOT.DAT file) make will be allowed.  Understand, please, that 
  1509.         this basically means that calls made by a Trojan while a trusted 
  1510.         TSR is loaded may not be caught.  Please, use this switch with 
  1511.         caution!
  1512.  
  1513.         Disabling FLU_SHOT+
  1514.         ===================
  1515.         There may be times when you're about to do some work which you 
  1516.         know will trigger FLU_SHOT+.  And you might not want to be 
  1517.         bothered with all of the triggering, the pop-up windows and your 
  1518.         need to respond to each trigger.  If you look in the upper right 
  1519.         hand corner of your screen, you'll see a '+' sign.  This 
  1520.         indicates that FLU_SHOT+ is monitoring and attempting to protect 
  1521.         your system.  Depress the ALT key three times.  Notice that the 
  1522.         '+' sign' turned into a '-'?  Well, FLU_SHOT+ is now disabled, 
  1523.         and will not trigger on any event.  If you depress the ALT key 
  1524.         three more times, you'll see the '-' turn back into a '+' -- each 
  1525.         time you depress the ALT key three times, FLU_SHOT+ will toggle 
  1526.         between being enabled and disabled. 
  1527.  
  1528.         Disabling the Disabling of FLU_SHOT+
  1529.         ====================================
  1530.         Yes, I know about the poor grammar used in the heading, but I 
  1531.         couldn't think of a better way of expressing it.
  1532.  
  1533.         You can cause FLU_SHOT+ to ignore the "strike ALT three times" 
  1534.         function discussed above.  If you'd rather that the people using 
  1535.         the machine FLU_SHOT is working on *not* be able to disable it, 
  1536.         then enter the '--' switch on the command line, as in:
  1537.  
  1538.               FSP --
  1539.  
  1540.         this is important when used in combination with the '!' 
  1541.         restricted file access option you may have opted to use in your 
  1542.         FLUSHOT.DAT file.
  1543.  
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.                                        23
  1553.  
  1554.  
  1555.  
  1556.         Disabling FLU_SHOT+ Toggle Display
  1557.         ==================================
  1558.         Alas, there are graphics applications which will be screwed up be 
  1559.         the '-' or '+' in the upper right hand corner of your display. 
  1560.         Therefore, if you depress the CTRL key three times, you'll be 
  1561.         able to toggle the display capability of FLU_SHOT+.  The default 
  1562.         configuration of FLU_SHOT+ is to "come up" with display turned 
  1563.         on.  You can reverse this capability if you include the '-G' (for 
  1564.         graphics) switch on your command line when you run FLU_SHOT+.
  1565.  
  1566.         When you toggle this function, the '-' or the '+' won't appear or 
  1567.         disappear immediately.  Simply that the repainting of them will 
  1568.         no longer take place.
  1569.  
  1570.         Defining Your Own "Special Keys"
  1571.         ================================
  1572.         If you would like to, you can define your own "special keys" (as 
  1573.         in the default Alt and Ctrl keys in a similar way as you define 
  1574.         your attributes above.  Use the '-Kxx:yy' option, which takes the 
  1575.         hexadecimal scan code value for the replacement Alt key as the 
  1576.         first argument (the 'xx') and the hexadecimal scan code value for 
  1577.         the replacement Ctrl key value.  If you're not sure of what your 
  1578.         scan codes are, you should look them up in your BIOS tech ref 
  1579.         manual -- or there are a multitude of programs which will print 
  1580.         out the scan code for a given key. Most of these programs are 
  1581.         available on BBS's throughout the world, including the Software 
  1582.         Concepts Design, RamNet BBS at (607)-326-4425.
  1583.  
  1584.         Due to extreme programmer fatigue, the "Welcome" message you see 
  1585.         when you first run FLU_SHOT+ with the '-K' option will not change 
  1586.         to reflect your selection.  Maybe in the next version.  And, of 
  1587.         course, it depends upon how much you, the end-user want such an 
  1588.         option.
  1589.  
  1590.         IMPORTANT: If the value is less than 10 (hex), you *must* include 
  1591.         a leading zero or strange things will happen to the selected 
  1592.         value.
  1593.  
  1594.         Forcing FLU_SHOT+ to only use the BIOS
  1595.         ======================================
  1596.  
  1597.         Certain machines are not totally compatible with the IBM BIOS, 
  1598.         which is the BIOS for which FLU_SHOT+ was written.  Because 
  1599.         FLU_SHOT has to be able to deal with the hardware in a pretty 
  1600.         direct manner in order to "pop-up" a screen, these machines were 
  1601.         not able to use FLU_SHOT.  If you specify the '-B' switch in your 
  1602.         command line when you first run FLU_SHOT+, then only the BIOS 
  1603.         will be used for screen output.  This is *drastically* slower 
  1604.         than direct screen memory writes (the method used unless you 
  1605.         specify to use the BIOS), but at least it works.  However, the 
  1606.         "hit ALT and/or CTRL three times" options may not work in these 
  1607.         machines - only your experimentation will tell.
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.                                        24
  1614.  
  1615.  
  1616.  
  1617.         Putting FLU_SHOT+ to Sleep When Its First Run
  1618.         ==============================================
  1619.         One of the idiosyncrasies of DOS is how a batch file is 
  1620.         processed.  Basically, DOS opens the batch file, reads the next 
  1621.         command, closes the batch file, executes the command, and then 
  1622.         starts over again until the batch file is exhausted of commands.
  1623.  
  1624.         This would, normally, not be a problem, but can become when you 
  1625.         opt to place the FLU_SHOT command line in your AUTOEXEC.BAT file 
  1626.         *and* you've opted to Read Protect (with the 'R=' option) the 
  1627.         AUTOEXEC file itself:  you'll be advised that some program is 
  1628.         reading this protected file.  Not a big deal, really, but 
  1629.         certainly a hassle when you fist boot up your system.  Therefore, 
  1630.         protections within FLU_SHOT are not turned on a certain amount of 
  1631.         time.  The default is set to ten seconds, or until you enter a 
  1632.         key.  You can modify the default "sleep" time by entering a '-Sn' 
  1633.         option on the command line, where 'n' represents the number of 
  1634.         eighteenths of a second (1/18) you wish to have FLU_SHOT+ sleep 
  1635.         before becoming active.  Since you will most likely have 
  1636.         FLU_SHOT+ as one of the final commands in your AUTOEXEC.BAT, you 
  1637.         probably won't have to modify this parameter, but the capability 
  1638.         exists, nonetheless.
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.  
  1656.  
  1657.  
  1658.  
  1659.  
  1660.  
  1661.  
  1662.  
  1663.  
  1664.  
  1665.  
  1666.  
  1667.  
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.                                        25
  1675.  
  1676.  
  1677.  
  1678.         Interpreting a FLU_SHOT+ Trigger
  1679.         ================================
  1680.  
  1681.         So, you've run FLU_SHOT+, and you're at your C> prompt. Great!  
  1682.         Now stick a blank disk which you don't care about into your A: 
  1683.         drive and try to format it.
  1684.  
  1685.         Surprise!  FLU_SHOT+ caught the attempt!  You have three choices 
  1686.         now:  typing 'Y' allows the operation to continue, but the next 
  1687.         one will be caught as well.  Typing a 'G' (for Go!) allows the 
  1688.         operation to continue, disabling FLU_SHOT+ until an exit from the 
  1689.         program is made. When FLU_SHOT+ is in the 'G' state, a 'G' will 
  1690.         appear in the upper right hand corner of your screen.
  1691.  
  1692.         Any other key will cause a failure of the operation to occur.
  1693.  
  1694.         When you've got FLU_SHOT+ running and you get signaled that there 
  1695.         is a problem, you should think about what might have caused the 
  1696.         problem.  Some programs, like FORMAT, or the Norton Utilities or 
  1697.         PC-Tools, or DREP have very good reasons for doing direct reads 
  1698.         and writes to your hard disk.  However, a public domain checkbook 
  1699.         accounting program doesn't.  You'll have to be the judge of what 
  1700.         are legitimate operations and which are questionable.
  1701.  
  1702.         There is no reason to write to IBMBIO or IBMDOS, right? 
  1703.  
  1704.         Wrong!
  1705.  
  1706.         When you format a disk with the '/S' option, those files are 
  1707.         created on the target diskette.  The act of creating, opening up 
  1708.         and writing those files will trigger FLU_SHOT+ as part of its 
  1709.         expected operation. There are many other legitimate operations 
  1710.         which may cause FLU_SHOT+ to trigger.
  1711.  
  1712.         So will copying a COM or EXE file if you have those protected 
  1713.         with a 'P=' command.  FLU_SHOT+ is not particularly intelligent 
  1714.         about what is allowed and what isn't.  That's where you, the 
  1715.         pilot, get to decide.
  1716.  
  1717.         Here's a fuller listing of the messages which you might see when 
  1718.         you're using FLU_SHOT+:
  1719.  
  1720.  
  1721.         Checking ===><filename>
  1722.  
  1723.         This message is displayed as FLU_SHOT+ checks the checksum on all 
  1724.         of the "C=" files when you first invoke FLU_SHOT+.  The files 
  1725.         must be read in from disk, their checksum calculated and then 
  1726.         compared against the value you claim the checksum should equal.
  1727.  
  1728.  
  1729.  
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.                                        26
  1736.  
  1737.  
  1738.  
  1739.         If the checksum does *not* equal what you claim it should (which 
  1740.         means that the file may have been written to and might therefore 
  1741.         be suspect), a window will pop up in the middle of your screen:
  1742.  
  1743.         +===============================================================+
  1744.         |  Bad Checksum on <filename>                                   |
  1745.         |  Actual Checksum is: <checksum>                               |
  1746.         |Press "Y" to allow, "G" to go till exit, any other key to exit.|
  1747.         +===============================================================+
  1748.  
  1749.         This message simultaneously advises you there is a problem with 
  1750.         the checksums not matching, shows you what the checksum should be 
  1751.         and then awaits your response.
  1752.  
  1753.         Except for the initial run of FLU_SHOT+, if you type a 'Y' or a 
  1754.         'G', then the program will load and execute.  Typing any other 
  1755.         key will cause the program to abort and for you to be returned to 
  1756.         the C> prompt.  When FLU_SHOT+ is in the 'G' state, a 'G' will 
  1757.         appear in the upper right hand corner of your screen.
  1758.  
  1759.         If this is the initial run of FLU_SHOT+, however, you'll be 
  1760.         advised of the program's actual checksum, but FLU_SHOT+ will 
  1761.         continue to run, checking all remaining "C=" files in the 
  1762.         FLUSHOT.DAT file.
  1763.  
  1764.  
  1765.  
  1766.         If you're running a program and you see a screen like:
  1767.  
  1768.         +===============================================================+
  1769.         |  ? WARNING! TSR Request from an unregistered program!         |
  1770.         |Number of paragraphs of memory requested (in decimal) are:<cnt>|   
  1771.         |                   (Press any key to continue)                 |
  1772.         +===============================================================+
  1773.  
  1774.         you're being advised that a program is about to go TSR.  If this 
  1775.         is a program you trust (such as SideKick, of KBHIT, or a host of 
  1776.         other TSR programs you've grown to know and love), then you 
  1777.         should considering installing a "T=" line in the FLUSHOT.DAT file 
  1778.         so that future runs of this program will not trigger FLU_SHOT+.
  1779.  
  1780.         However, if you get this message when running a program you don't 
  1781.         think has any need to go TSR (such as the proverbial checkbook 
  1782.         balancing program), you should be a little suspicious.  Having a 
  1783.         TSR program is not, in of and of itself, something to be 
  1784.         suspicious of.   But having one you don't expect --- well, that's 
  1785.         a different story.
  1786.  
  1787.         Most TSR's "hook into" an interrupt vector before they go TSR.  
  1788.         These hooks might intercept and process key strokes ("hotkeys"), 
  1789.         or they might hook and intercept direct disk writes themselves.  
  1790.         In any event, FLU_SHOT+ (in this version!) doesn't have the 
  1791.         smarts to do more than advise you of the TSR'ing of the program.  
  1792.         If you're truly suspicious, reboot your machine immediately!
  1793.  
  1794.  
  1795.                                        27
  1796.  
  1797.  
  1798.  
  1799.         If a program attempts to write directly to the interrupts which 
  1800.         are reserved for disk writes, FLU_SHOT+ will also be triggered 
  1801.         and you'll see something like:
  1802.  
  1803.         +===============================================================+
  1804.         |====>Direct Disk Write attempt by program other than DOS! <====|
  1805.         | Interrupt xx=> Drive: x Head: y Track: zzzzz Sector: zzzzz    |
  1806.         |  By:  <program>                                               |
  1807.         |Press "Y" to allow, "G" to go till exit, any other key to fail.|
  1808.         +===============================================================+
  1809.  
  1810.         where the <xx> represents either a 13 or 40 (indicating a direct 
  1811.         BIOS write to the disk) or a 26 (indicating a direct DOS write).  
  1812.         Again, pressing a 'Y' or a 'G' allows the operation to continue, 
  1813.         pressing any other key will cause the operation to return a 
  1814.         failed status to DOS, and the operation will not take place. When 
  1815.         FLU_SHOT+ is in the 'G' state, a 'G' will appear in the upper 
  1816.         right hand corner of your screen.  FLU_SHOT+ will attempt to let 
  1817.         you know what program is actually attempting the write as well: 
  1818.         this is not always reliable, though, so don't count on it as more 
  1819.         than a hint.
  1820.  
  1821.         Additionally, for the folks interested in the real techno-babble, 
  1822.         FLU_SHOT+ will also let you know what drive, head, track and 
  1823.         sector is the target of the supposed "illegal" access.
  1824.  
  1825.         If an attempt is made to format your disk, which may be a 
  1826.         legitimate operation made by the DOS FORMAT program, you'll see a 
  1827.         message such as:
  1828.  
  1829.         +===============================================================+
  1830.         |          ====>Disk being formatted! Are You Sure?<====        |
  1831.         | Interrupt xx=> Drive: x Head: y Track: zzzzz Sector: zzzzz    |
  1832.         |  By:  <program>                                               |
  1833.         |Press "Y" to allow, "G" to go till exit, any other key to fail.|
  1834.         +===============================================================+
  1835.  
  1836.         which follows similarly to the direct disk write operations. You 
  1837.         should question whether the format operation is appropriate at 
  1838.         the time and take whatever action you think is best.
  1839.  
  1840.         If one of your protected files is about to be written to, you'll 
  1841.         see a message like:
  1842.  
  1843.         +===============================================================+
  1844.         |Write access being attempted on:                               |
  1845.         | <filename>                                                    |
  1846.         |  By:  <program>                                               |
  1847.         |Press "Y" to allow, "G" to go till exit, any other key to fail.|
  1848.         +===============================================================+
  1849.  
  1850.         where <filename> represents the file you're trying to protect 
  1851.         from these write operations.  Your red flag should fly, and you 
  1852.         should question why the program currently running should cause 
  1853.         such an operation. 
  1854.  
  1855.  
  1856.                                        28
  1857.  
  1858.  
  1859.  
  1860.         You may also see the same type of message when one of your "Read-
  1861.         Protected" files is being accessed:
  1862.  
  1863.         +===============================================================+
  1864.         |Read Access being attempted on:                                |
  1865.         | <filename>                                                    |
  1866.         |  By:  <program>                                               |
  1867.         |Press "Y" to allow, "G" to go till exit, any other key to fail.|
  1868.         +===============================================================+
  1869.  
  1870.         Again, the same red flag should fly, but it doesn't mean that 
  1871.         you're infected with some nasty virus program!  It could be 
  1872.         something harmless or intended.  You'll have to be the judge.
  1873.  
  1874.         +===============================================================+
  1875.         |Open File with Write access being attempted on:                |
  1876.         | <filename>                                                    |
  1877.         |  By:  <program>                                               |
  1878.         |Press "Y" to allow, "G" to go till exit, any other key to fail.|
  1879.         +===============================================================+
  1880.  
  1881.         If you see the above message:  Don't Panic!  When a program opens 
  1882.         a file, it may open the file for different types of access.  One 
  1883.         access method prohibits writing to the file.  Another allows you 
  1884.         to write to the file.  However, lazy programmers (myself included 
  1885.         in this category from time to time) will often open a file for 
  1886.         read *and* write access, even though they have no intention of 
  1887.         ever doing a write into the file.  FLU_SHOT+ isn't smart enough 
  1888.         to be able to figure out what a program *might* do in the future, 
  1889.         so it will alert you to an attempt to open the indicated 
  1890.         protected file with write access allowed.  Again, you'll have to 
  1891.         consider whether the program opening the file is a "trusted" 
  1892.         program or not and you'll have to then decide what action to 
  1893.         take.
  1894.  
  1895.         +===============================================================+
  1896.         |Handle Write Access being attempted on:                        |
  1897.         | <filename>                                                    |
  1898.         |  By:  <program>                                               |
  1899.         |Press "Y" to allow, "G" to go till exit, any other key to fail.|
  1900.         +===============================================================+
  1901.  
  1902.         If you see this message, it means that some program is trying to 
  1903.         write to a protected file through an access method known as 
  1904.         "handle access".  This should normally never happen, with the 
  1905.         caveats raised above in the "Open With Write Access" section.
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.                                        29
  1918.  
  1919.  
  1920.  
  1921.         There are three separate messages you'll see if a program 
  1922.         attempts to rename a protected file (you'll only see one of these 
  1923.         messages at a time, though):
  1924.  
  1925.  
  1926.         +===============================================================+
  1927.         |FCB Rename being attempted on source file:                     | 
  1928.         |FCB Rename being attempted on target file:                     |
  1929.         |Handle Rename being attempted on:                              |
  1930.         | <filename>                                                    |
  1931.         |  By:  <program>                                               |
  1932.         |Press "Y" to allow, "G" to go till exit, any other key to fail.|
  1933.         +===============================================================+
  1934.  
  1935.         This indicates what type of operation is attempting to rename a 
  1936.         protected file.  FCB's are a relic of the older CP/M days, and 
  1937.         "handles" are a newer concept, a little more modern.  In any 
  1938.         event, this tells you that a file is being renamed.  It is 
  1939.         possible that a trojan or virus writer will attempt to rename an 
  1940.         existing protected file to some other name, then rename a 
  1941.         trojaned or virused program in its stead.  FLU_SHOT will alert 
  1942.         you to this action:  again, though, you'll have to decide what to 
  1943.         do about it.
  1944.  
  1945.         +===============================================================+
  1946.         |Delete being attempted on:                                     |
  1947.         | <filename>                                                    |
  1948.         |  By:  <program>                                               |
  1949.         |Press "Y" to allow, "G" to go till exit, any other key to fail.|
  1950.         +===============================================================+
  1951.  
  1952.         Pretty much self-evident as to what's happening here, there are 
  1953.         very few reasons why one of the files you've opted to protect 
  1954.         should be deleted.
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.                                        30
  1979.  
  1980.  
  1981.  
  1982.                           How Good is FLUSHOT+, Really?
  1983.  
  1984.         FLU_SHOT+ is a pretty handy piece of code.  But, it can't 
  1985.         absolutely protect you from a worm.  No software can do that.  
  1986.         There are ways around FLU_SHOT+.  I'm of two minds about 
  1987.         discussing them, since the worms out there are reading this, too.  
  1988.         So I'll only discuss them in passing.  And I'll tell you what I 
  1989.         use here to protect myself from worms.  First, though, a little 
  1990.         story to tell you what it's like here, and how I protect myself 
  1991.         from getting wormed.
  1992.  
  1993.         The RamNet Bulletin Board System site I run is open access. No 
  1994.         need to register, or to leave your phone number or address, 
  1995.         although a note to that effect is always appreciated.  As 
  1996.         mentioned above, I dare the worm to try to affect the disk of 
  1997.         somebody who can fight back.  A couple of of worms have tried and 
  1998.         I have a nice collection of Trojans and viruses.  Obviously, I 
  1999.         run FLU_SHOT+ on my board, along with checking incoming files 
  2000.         with CHK4BOMB.  My procedure for testing out newly uploaded code 
  2001.         involves me doing a backup, installing all sorts of software to 
  2002.         monitor what is going on, and doing a checksum on all files on 
  2003.         the disk.  I then try out all of the code I get, primarily to 
  2004.         determine if the code is of high enough quality to be posted.  
  2005.         After testing out all of the weeks uploads, I run the checksum 
  2006.         program again to determine of any of my files might have been 
  2007.         modified by a worm's virus program.
  2008.  
  2009.         Recently, what looked like a decent little directory lister was 
  2010.         posted to the board.  For some reason I've yet to fathom, 
  2011.         directory aid programs seem to be the ones which have the highest 
  2012.         percentage of Trojans attached to them.
  2013.  
  2014.         This directory aid program listed my directories in a wonderful 
  2015.         tree structure, using different colors for different types of 
  2016.         files.  Nice program.  When it exited, however, it went out and 
  2017.         looked for a directory with the word "FLU" in it.  Once it found 
  2018.         a directory with a match in it, it proceeded to try to erase all 
  2019.         of the files in that directory. An assault! No big deal.  That's 
  2020.         what backups are for.
  2021.  
  2022.         But it brings up an interesting point:  I was attacked by a 
  2023.         clever worm, and it erased a bunch of files which were pretty 
  2024.         valuable.  All of the protection I had would have been for naught 
  2025.         if I didn't use the first line of defense from these worms:  full 
  2026.         and adequate backup.
  2027.  
  2028.         I've spent three years of my life developing one particular 
  2029.         software package.  Imagine what would have happened if that had 
  2030.         been erased by a worm!  Fortunately, I make backups at least once 
  2031.         a day, and usually more frequently than that.  You should, too.
  2032.  
  2033.         Now, I quarantine that machine as well.  I spent a couple of 
  2034.         dollars and bought a bunch of bright red floppy disks.  The basic 
  2035.         rule around here is that Red Disks are the only disks that go 
  2036.         into the BBS machine, and the Red Disks go into no other machine.  
  2037.  
  2038.                                        31
  2039.  
  2040.  
  2041.  
  2042.         You see, I *know* that there is some worm out there who is gonna 
  2043.         find some way to infect my system.  No matter what software 
  2044.         protection I use, there *is* a way around it.
  2045.  
  2046.         You needn't be concerned though -- you're making backups on a 
  2047.         regular basis, right?  And, you aren't asking for trouble.  I am, 
  2048.         I expect to find it, and it is sort of amusing to see what the 
  2049.         worms out there are wasting their efforts on.
  2050.  
  2051.         At this point, Trojans and Viruses are becoming a hobby with me: 
  2052.         watching what the worms try to do, figuring out a way to defend 
  2053.         against it, and then updating the FLU_SHOT series.
  2054.  
  2055.         However, there is a possibility that the FLU_SHOT series (as well 
  2056.         as other protection programs which are just as valuable) are 
  2057.         causing an escalation of the terms of this war.  The worms out 
  2058.         there are sick individuals.  They must enjoy causing the damage 
  2059.         they do.  But they haven't the guts to stand up and actually do 
  2060.         something in person.  They prefer to hide behind a mist of 
  2061.         anonymity.
  2062.  
  2063.         But you have the ultimate defense!  No, not the FLU_SHOT+ 
  2064.         program.
  2065.  
  2066.         FULL AND ADEQUATE BACKUPS!
  2067.  
  2068.         There are a variety of very good backup programs which can save 
  2069.         you more work than you can imagine.  I use the FASTBACK+ program, 
  2070.         which is a great little program.  I backup 30Megs once in a 
  2071.         while, and do an incremental backup on a very frequent basis.  
  2072.         There are a variety of very good commercial, public domain, and 
  2073.         shareware backup programs out there.  Use them!  Because, no 
  2074.         matter what software protection you use, somebody will find a way 
  2075.         around it once day.  But they can't find a way around your 
  2076.         backups.  And, if you (and everyone else) do regular backups, 
  2077.         you'll remove the only joy in life these worms have.  They'll 
  2078.         kill themselves, hopefully, and an entire subspecies will be 
  2079.         wiped out -- and you'll be partially responsible!
  2080.  
  2081.         My advance thanks for helping to exterminate these little 
  2082.         slimebuckets.  But that brings me to something else.
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.                                        32
  2100.  
  2101.  
  2102.  
  2103.                                  Reward Offered
  2104.  
  2105.         Somebody out there knows who the worms are.  Even they must have 
  2106.         someone who is a friend. True, I can't think of any reason 
  2107.         someone would befriend a worm.  But somebody who doesn't know 
  2108.         better has.
  2109.  
  2110.         Well, I'm offering a reward for the capture and conviction of 
  2111.         these worms.
  2112.  
  2113.         Enough already with software protection schemes, hardware 
  2114.         protection schemes, or any protection at all.  It shouldn't be 
  2115.         required, dammit!
  2116.  
  2117.         Here's the deal:
  2118.  
  2119.         In this archive is a form called REWARD.FRM.  If you're a 
  2120.         software or hardware manufacturer, or you have some software or 
  2121.         hardware you don't need, consider filling out that form, and 
  2122.         donating it to a worthy cause.  I don't know what the legal and 
  2123.         tax ramifications of that donation would be.  I'm not a lawyer 
  2124.         and we can cross that bridge when we get to it.
  2125.  
  2126.         Anyway, if you know one of these worms, turn them in!  Call me 
  2127.         up, send me a letter, a telegram, or leave a message for me on my 
  2128.         BBS.  Indicate who you *know* is worming about.  I'll keep your 
  2129.         name confidential.
  2130.  
  2131.         It is surprisingly easy to get the authorities in on this -- 
  2132.         they're as concerned about what is happening to our community as 
  2133.         we are.  I'll presume that they'll end up putting a data tap on 
  2134.         the phone line of the accused worm.  Then, when he next uploads a 
  2135.         Trojan or a virus to a BBS, he'll get nailed.  The authorities 
  2136.         are pretty good about this stuff: they'll not tap a phone or take 
  2137.         any action whatsoever without adequate proof.  Will your dropping 
  2138.         a dime on this worm be adequate proof?  I don't know.   Again, a 
  2139.         bridge to cross when we approach it.
  2140.  
  2141.         However, assuming that this slimeball gets nailed, you'll get all 
  2142.         of the software and hardware which other people have donated. And 
  2143.         the satisfaction of knowing that you've done a Good Thing, that 
  2144.         you've helped an industry and community continue to grow.  This 
  2145.         *is* your community, and the vast majority of people in it are 
  2146.         good people who shouldn't have to fear from your friend.  Your 
  2147.         friend is not really a friend: he uses you to justify his own 
  2148.         existence.  When someone uses you like that, they're not a 
  2149.         friend, they're a leach.  And you've probably got better things 
  2150.         to do then let somebody use you like that.
  2151.  
  2152.         Most importantly, the worm out there won't know if one of his 
  2153.         friends has already turned him in.  So he won't know if his phone 
  2154.         is tapped.  If *I* were a worm, and considering what kind of 
  2155.         friends I would have, I'd be sure that somebody dropped a dime on 
  2156.         me.  And therefore an intelligent worm (perhaps I'm giving the 
  2157.         worm too much credit?) must presume that their line is tapped and 
  2158.  
  2159.                                        33
  2160.  
  2161.  
  2162.  
  2163.         that they're gonna go to jail if they continue what they're 
  2164.         doing.
  2165.  
  2166.         So just stop, you miserable little lowlife, huh?  You're going to 
  2167.         be arrested. You're going to have to put up with indignities 
  2168.         which even you don't deserve!  Your equipment will be 
  2169.         confiscated.  You'll never get a job in the industry.  You're 
  2170.         going to go to jail.  
  2171.  
  2172.         All because one of your friend's actually has a conscience and 
  2173.         knows what is right and what is wrong.  And what you're doing is 
  2174.         wrong.
  2175.  
  2176.         So, let me get back to the kind of programming I enjoy -- 
  2177.         productive programming.  And turn your programming to useful, 
  2178.         interesting, and productive programming.  You have the talent to 
  2179.         do something useful and good with your life.  What you're doing 
  2180.         is hurting the industry and hurting the community which would 
  2181.         welcome someone with your talents with open arms.
  2182.  
  2183.         And the satisfaction of helping far surpasses the satisfaction 
  2184.         you must get from hurting innocent people.
  2185.  
  2186.         So just stop. 
  2187.  
  2188.  
  2189.         Sincerely, Ross M. Greenberg
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.                                        34
  2221.  
  2222.  
  2223.  
  2224.                 APPENDIX  A: Common Questions and Their Answers:
  2225.  
  2226.         Q:  Why does FLU_SHOT+ not work with programs that use graphics 
  2227.             capabilities, such as Microsoft EXCEL?
  2228.  
  2229.         A:  FLU_SHOT+ is a TSR program, and uses up memory on your 
  2230.             computer even when there is no suspicious action taking 
  2231.             place.  When such an action occurs, the current screen must 
  2232.             be saved to bring up the trigger window.  In graphics mode, 
  2233.             this requires a great deal of memory to be set aside, and so 
  2234.             we considered it not worth the loss of memory
  2235.  
  2236.         Q:  So, then, what can I do if I use such graphics programs?
  2237.  
  2238.         A:  Try using the '-B' switch.  You might lose a portion of your 
  2239.             screen, but you'll be able to see what is causing the trigger 
  2240.             to occur.
  2241.  
  2242.         Q:  Certain programs lock up when FLU_SHOT+ triggers -- I have to 
  2243.             reboot the system.  What can I do?
  2244.  
  2245.         A:  Try resetting the Action Keys (with the -Kxx:yy option).  
  2246.             Chances are that your program is taking over the keyboard and 
  2247.             not passing keys over to FLU_SHOT+.  You'll have to 
  2248.             experiment around with keys until you find a set that works.
  2249.  
  2250.         Q:  Certain programs, like WORDPERFECT, use temporary work files, 
  2251.             and then delete them with a call that triggers FLU_SHOT+.  
  2252.             What can I do?
  2253.  
  2254.         A:  Try excluding the class of files causing the trigger with the 
  2255.             'E=' option in your FLUSHOT.DAT file.  Look for the pattern 
  2256.             of the target filenames in the trigger window, and then 
  2257.             install a line into FLUSHOT.DAT that corresponds to it.  Or, 
  2258.             you could exclude that particular directory if you wish.
  2259.  
  2260.         Q:  Every time I run a program like "PRINT", I get a lot of Direct 
  2261.             Disk Access messages from FLU_SHOT+.  Does this mean that 
  2262.             PRINT (for example) is infected with a virus?
  2263.  
  2264.         A:  Not at all! PRINT is a TSR, which means that a portion of it 
  2265.             stays around after you get back your C:> prompt.  Part of 
  2266.             that TSR takes over the Direct Disk Access Interrupts.  
  2267.             Therefore, whenever even a legitimate program makes a call to 
  2268.             do a legitimate disk operation, it appears to come from some 
  2269.             program other than the DOS operating system.  Try putting 
  2270.             your PRINT (or other trusted TSR) command before the call to 
  2271.             FLU_SHOT+ in your AUTOEXEC.BAT file.  This should solve the 
  2272.             problem.
  2273.  
  2274.  
  2275.  
  2276.  
  2277.  
  2278.  
  2279.  
  2280.  
  2281.                                        35
  2282.  
  2283.  
  2284.  
  2285.         Q:  Will FLU_SHOT+ tell me if I have a virus on my disk and will 
  2286.             it remove a virus if found?
  2287.  
  2288.         A:  Nope. FLU_SHOT+ will check that files are what they appear to 
  2289.             be when you run them, if you wish.  And, it will interrupt 
  2290.             the type of suspicious activity associated with a virus 
  2291.             attack.  At that point, you have to consider whether or not 
  2292.             the program you're running is a virus or not, and take 
  2293.             appropriate action if it is.
  2294.  
  2295.         Q:  What kind of appropriate action?
  2296.  
  2297.         A:  First thing to do would be to load a new copy of that program 
  2298.             from your original distribution disk.  Try using the program 
  2299.             again.  If the trigger window pops up, then chances are the 
  2300.             program is violating one of the rules in your FLUSHOT.DAT 
  2301.             file, but isn't a virus.  Change your FLUSHOT.DAT to reflect 
  2302.             whatever exceptions are needed to cause this program to no 
  2303.             longer trigger.
  2304.  
  2305.         Q:  What precautions should I take when reloading a program from 
  2306.             my original distribution disks?
  2307.  
  2308.         A:  You should power off your computer for about ten seconds. 
  2309.             Reboot with a clean, write-protected copy (stick a piece of 
  2310.             black tape over the write enable notch on the disk) in your 
  2311.             A: drive.  Then, do a "SYS" onto your hard disk to play it 
  2312.             safe (see the DOS manuals for an explanation of what SYS does 
  2313.             and how to use it), then reinstall your software.
  2314.  
  2315.         Q:  I see a lot of copies of FLU_SHOT+ on the Bulletin Board 
  2316.             Systems I use.  Are they the same as this version?
  2317.  
  2318.         A:  You'll have to check the version number to make sure -- but 
  2319.             there's no guarantee that the version you see out on a BBS is 
  2320.             going to be a clean copy of FLU_SHOT+ (unless you get it from 
  2321.             one of the BBS's the author uploaded it to himself).  The 
  2322.             commercial releases have an installation program to aid you 
  2323.             your installing FLU_SHOT+ and have a printed manual.
  2324.  
  2325.         Q:  May I distribute this copy of the program onto BBS systems?
  2326.  
  2327.         A:  You may only distribute the .ARC file on the Distribution 
  2328.             Disk to BBS systems.  Without any changes.  If you distribute 
  2329.             any other files from that disk, you will be in violation of 
  2330.             copyright law -- and that's a federal offense!
  2331.  
  2332.         Q:  If I get a virus, what should I do with the infected program?
  2333.  
  2334.         A:  If you like, make a copy of the infected program and send it 
  2335.             to us so we can examine it and determine, if possible, who 
  2336.             might have released it and have them prosecuted.  Otherwise, 
  2337.             simply delete the infected program - a deleted virus can hurt 
  2338.             no one.
  2339.  
  2340.  
  2341.                                        36
  2342.  
  2343.  
  2344.  
  2345.         Q:  I'm interested in seeing what a virus is.  Can you send me 
  2346.             one?
  2347.  
  2348.         A:  Sorry, we can't do that.  Aside from the ethics of releasing 
  2349.             a virus to an unknown person (even if a customer!), there are 
  2350.             now some laws on the books making distribution of a virus a 
  2351.             federal offense.
  2352.  
  2353.         Q:  I ran out of space in my FLUSHOT.DAT file.  Can I expand it 
  2354.             out at all?
  2355.  
  2356.         A:  Nope.  It's of a fixed size in this release of FLU_SHOT+.  
  2357.             There's a big brother of FLU_SHOT+, called FLU_SHOT++, which 
  2358.             provides for an unlimited size for your Protections File.  
  2359.             Send in the card for more information on  FLU_SHOT++ and the 
  2360.             additional protections it affords.
  2361.  
  2362.         Q:  Will FLU_SHOT+ stop every virus out there?
  2363.  
  2364.         A:  No. No software product can stop every virus attack, since 
  2365.             there are a variety of ways a virus can attack your system 
  2366.             and get around FLU_SHOT+'s protection mechanisms.  However, 
  2367.             no virus can infect a program and not change the checksum of 
  2368.             the program.  Therefore, use the C= option in your 
  2369.             FLUSHOT.DAT Protections File on all the programs you run.  
  2370.             That way, you'll know if the program you're running has 
  2371.             become infected since the last time you ran it.
  2372.  
  2373.  
  2374.         Q:  ????
  2375.  
  2376.         A:  42
  2377.  
  2378.  
  2379.  
  2380.  
  2381.  
  2382.  
  2383.  
  2384.  
  2385.  
  2386.  
  2387.  
  2388.  
  2389.  
  2390.  
  2391.  
  2392.  
  2393.  
  2394.  
  2395.  
  2396.  
  2397.  
  2398.  
  2399.  
  2400.  
  2401.  
  2402.                                        37
  2403.  
  2404.  
  2405.  
  2406.                        APPENDIX B: How Does A Virus Work?
  2407.  
  2408.         A computer virus is actually a very simple program to write.  
  2409.         First, a little bit of terminology can help understand what they 
  2410.         are:
  2411.  
  2412.         A computer virus has a number of different parts.  First, some 
  2413.         viruses (some people consider the plural of 'virus' to be 'virii' 
  2414.         -- I don't) have what is called a 'pre-trigger'.  If the pre-
  2415.         trigger does not go off, then the infected program will work 
  2416.         normally, as if not infected.  What makes a pre-trigger go off?
  2417.  
  2418.         Almost anything the virus writer wants.  It can be made to go off 
  2419.         when the disk is more than a certain amount full, or when more 
  2420.         than a certain amount of memory is in use by your programs.  Or, 
  2421.         perhaps, when a certain date comes or has past.  Or, if a certain 
  2422.         program exists on your hard disk.  Fancifully speaking, it could 
  2423.         be set to go off on the correct phase of the moon.
  2424.  
  2425.         Once the pre-trigger goes off (not many viruses have them, by the 
  2426.         way), the next phase, the 'replication aspect' phase, gets 
  2427.         initiated.  Viruses seem to come in two flavors:  the transient 
  2428.         virus, which is only active when you're running your code, and 
  2429.         the Terminate and Stay Resident kind, which stay active from the 
  2430.         time initiated until you reboot your computer.  There's a third 
  2431.         kind, called a 'boot sector' virus, but that'll be discussed 
  2432.         below.
  2433.  
  2434.         When you invoke a program, infected or not, your computer will 
  2435.         read the image of the program from the disk into the computers 
  2436.         memory, do a little bit of futzing with the program (if it's an 
  2437.         program, letting the program tell it what to do from that point 
  2438.         onwards.  The computer's operating system, in this case MS-DOS, 
  2439.         is really stupid:  it gives total control to the running program 
  2440.         from that moment until the program exits and you get back to your 
  2441.         command line prompt.
  2442.  
  2443.         When you invoke an infected program, it is run just as any other 
  2444.         program. The virus portion of that program will typically be run 
  2445.         first.  After passing the pre-trigger (if any), the replication 
  2446.         aspect will consider what types of files to infect.  For the 
  2447.         standard transient virus, this usually means that a given 
  2448.         directory will have one or more of its .COM or .EXE files 
  2449.         infected.  Some viruses will infect only one program each time 
  2450.         they are run, some will infect many.  It's up to the virus 
  2451.         writer.  Each virus has some characteristic about it which is 
  2452.         unique, and often the virus writer will examine the target .COM 
  2453.         or .EXE file for this characteristic to see if the target program 
  2454.         is already infected.  If it is, then the program will be passed 
  2455.         over and the next one examined and potentially infected.
  2456.  
  2457.         Since the computer simply passes control onto the program once it 
  2458.         is loaded into memory, and then basically forgets about it, if 
  2459.         the first few instructions of the program can be changed to cause 
  2460.         the computer to execute some new instructions, it will blindly do 
  2461.  
  2462.                                        38
  2463.  
  2464.  
  2465.  
  2466.         so.  And that's what a virus does.  It takes the first few 
  2467.         instructions of the program, saves them someplace, and replaces 
  2468.         those instructions with a call to jump to the virus code. When 
  2469.         the virus infected program executes later, it will first run the 
  2470.         virus code, then restore the original code (unless the virus 
  2471.         "goes off", discussed below), and finally will jump to the 
  2472.         beginning of the reconstructed program.  The infected program 
  2473.         executes  as if nothing had happened at all.
  2474.  
  2475.         So, when a virus goes to infect another program, it must add code 
  2476.         to it.  And, must replace at least a few instructions, at least 
  2477.         temporarily, with some of its own.
  2478.  
  2479.         Typically, a virus will add to the end of a program, although not 
  2480.         all viruses work that way.
  2481.  
  2482.         This is how almost all transient viruses work.
  2483.  
  2484.         Another, more sophisticated virus, is called the "TSR virus".  
  2485.         This infects a program similarly to the transient virus, but its 
  2486.         "action" involves leaving a little piece of itself behind (those 
  2487.         in the anti-virus field seem to always call that small part left 
  2488.         behind the "worm trail", or the "slime").  This piece becomes an 
  2489.         active, and permanent, part of your computers operating system.  
  2490.         Typically, it will look for instructions your computer sends in 
  2491.         response to you entering a run command.  When you do, it infects 
  2492.         the program you've requested to run before it is actually 
  2493.         executed, then executes it.
  2494.  
  2495.         Going back to the phases, the third phase is called the "trigger 
  2496.         aspect".  Like the pre-trigger, it depends on how devious the 
  2497.         virus writer is when he or she creates the trigger, and can go 
  2498.         off on just about anything.
  2499.  
  2500.         When it goes off, the final (and most dangerous) phase of the 
  2501.         virus is reached:  the "Trojan aspect".  This is the part that 
  2502.         deletes files, trashes your hard disk, or otherwise makes your 
  2503.         life miserable.
  2504.  
  2505.         And, that's all there is a virus.  An ingenious little piece of 
  2506.         code.  Written by a warped person.  Who could spend their time 
  2507.         better if they spent it doing something constructive instead of 
  2508.         destructive. We already know that, of course.  When they mature a 
  2509.         bit, hopefully they'll find that out.  Before they've hurt anyone 
  2510.         else.
  2511.  
  2512.         Oh!  Almost forgot about Boot Sector Viruses.  Here goes:
  2513.  
  2514.         When you turn your computer on, a small program is run before 
  2515.         anything else.  That's called the Boot Sector, and it loads up 
  2516.         some of the important stuff you need to have on your computer in 
  2517.         order for it work.  Little things, like the operating system.  
  2518.         Without the operating system (MS-DOS), your computer is an 
  2519.         expensive paperweight.  Without the Boot Sector, and the program 
  2520.         thereon, you have an expensive paperweight with an inoperable 
  2521.  
  2522.                                        39
  2523.  
  2524.  
  2525.  
  2526.         operating system on it.
  2527.  
  2528.         A Boot Sector Virus replaces the current boot program with 
  2529.         itself, and sticks the original boot sector onto an unused 
  2530.         portion of your disk.  After the Boot Sector Virus has run, 
  2531.         leaving behind a sleazy little worm trail of its own, it will 
  2532.         execute the original boot program.  You'll have an infected 
  2533.         system even before an anti-virus program is run!
  2534.  
  2535.         When you access some other disk, the worm trail of the Boot 
  2536.         Sector Virus will examine the boot sector of that disk.  If not 
  2537.         infected, it will infect it.  Very simple.  And the infected 
  2538.         diskette waits for you to pass it on to one of your friends, who 
  2539.         will then (by booting on that disk) infect their own drive.  And 
  2540.         so.  The moral here:  never boot up your system on anyone else's 
  2541.         disk and you'll be a much happier person.
  2542.  
  2543.  
  2544.  
  2545.  
  2546.  
  2547.  
  2548.  
  2549.  
  2550.  
  2551.  
  2552.  
  2553.  
  2554.  
  2555.  
  2556.  
  2557.  
  2558.  
  2559.  
  2560.  
  2561.  
  2562.  
  2563.  
  2564.  
  2565.  
  2566.  
  2567.  
  2568.  
  2569.  
  2570.  
  2571.  
  2572.  
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  
  2579.  
  2580.  
  2581.  
  2582.  
  2583.                                        40
  2584.